import axios from 'axios'
import { Message, TimeSelect } from 'element-ui'
import NProgress from 'nprogress'
import VueRouter from 'vue-router'


// 隐藏掉，右上角的加载 
NProgress.configure({ showSpinner: false });

// 存储 请求的数组
// window._axiosPromiseArr = []

// const BASE_URL = "http://localhost:3001"
// const BASE_URL = "http://82.157.137.75:3000"
// const BASE_URL = "https://wangyiyun-daidaigou-ye.vercel.app/"
const TIMEOUT = 10000
const service = axios.create({
  baseURL: process.env.VUE_APP_BASE_API,
  timeout: TIMEOUT,
  withCredentials: true,// 跨域请求时 需要使用凭证
  headers: {
    // timestamp: +new Date(),// 加上时间戳
  },
  params: {
    timestamp: +new Date(),// 加上时间戳
  }
})
service.interceptors.request.use(config => {
  NProgress.start()
  // 1.发送网络请求时, 在界面的中间位置显示Loading的组件

  // 2.某一些请求要求用户必须携带token, 如果没有携带, 那么直接跳转到登录页面

  // 3.params/data序列化的操作

  // 
  // config.cancelToken = new axios.CancelToken(cancel => {
  //   window._axiosPromiseArr.push({ cancel })
  // })
  return config;
}, err => {

});

service.interceptors.response.use(res => {
  // console.log(res);
  NProgress.done()
  if (res.data.code === 200 || res.data.status === 200) {
    return res.data;
  } else {
    // console.dir(res.data);
    // 二维码登录的错误
    if (res.data.code == 800 || res.data.code == 801 || res.data.code == 802 || res.data.code == 803) {
      console.log('相应成哥', res.data);
      return Promise.reject(res.data)

    } else {
      Message.error(res.data.message || "未知错误，请检查请求");
      return Promise.reject(new Error(res.data.message || "未知错误，请检查请求"))
    }


  }

}, err => {
  // console.dir(err);、
  // console.log(err.response.data.success);
  // 对于 检验歌曲是否有版权，  如果没有版权 会走这里
  if ((err.response.data.success == false) && (err.response.data.message == "亲爱的,暂无版权")) {
    // console.log('走了');
    Message.error("亲,此歌曲暂无版权~~,换一首吧~");

  }

  // console.dir(err);
  // console.dir("请求报错的信息:", err);

  // console.dir(err);
  // console.log('请求保错信息结束');
  // if (err.response && err.response.data.code !== 200) {
  //   message.error(err.response.data.msg);

  // }
  NProgress.done()
  return Promise.reject(err)
})
export default service